package models

import "github.com/jinzhu/gorm"

type AppInfo struct {
	ID       int    	`json:"app_id"`
	AppName string `json:"app_name"`
	AppType string `json:"app_type"`
	AppSource string `json:"app_source"`
	AppHttpPort int `json:"app_http_port"`
	AppRpcPort int `json:"app_rpc_port"`
	AppArtifactory string `json:"app_artifactory"`
	AppDeptId int `json:"app_dept_id"`
	AppDeptName string `json:"app_dept_name"`
	AppOwnerId int `json:"app_owner_id"`
	AppOwnerName string `json:"app_owner_name"`
}

// GetAppInfoById 根据应用ID返回app信息
func GetAppInfoById(appId int) (*AppInfo, error){
	var app AppInfo
	err := db.Where("id = ?", appId).Find(&app).Error
	if err != gorm.ErrRecordNotFound && err != nil {
		return nil, err
	}

	if app.ID > 0 {
		return &app, nil
	}

	return nil, nil
}


// AppSelects 返回所有应用列表
func AppSelects() ([]*AppInfo, error){
	var (
		app []*AppInfo
		apps []*AppInfo
	)

	err := db.Find(&apps).Error
	if err != gorm.ErrRecordNotFound && err != nil {
		return nil, err
	}

	for _, v := range apps {
		app = append(app, v)
	}

	return app, nil
}